var gulp = require("gulp");
var gulp_min_css = require("gulp-minify-css");
var gulp_sass = require("gulp-sass");
var gulp_plumber = require("gulp-plumber");//抑制错误停止行为
var gulp_tinypng = require("gulp-tinypng");
var gulp_uglify = require("gulp-uglify");
var gulp_copy = require("gulp-copy");
var gulp_autoprefixer = require("gulp-autoprefixer");
var browser_sync = require("browser-sync").create();
var gulp_babel = require("gulp-babel");

//scss转化为css并压缩(生成模式使用)
gulp.task("mincss",function(){
	gulp.src('src/scss/**/*.scss')//source
		.pipe(gulp_plumber())
		.pipe(gulp_sass())
		.pipe(gulp_min_css({
			keepSpecialComments: '*'//保留所有特殊前缀，当你用autoprefixer生成的浏览器前缀，如果不加这个参数，有可能会删除你的部分前缀。
		}))
		.pipe(gulp_autoprefixer({
			browsers: ['last 2 versions', 'Android >= 4.0','iOS 7','last 3 Safari versions'],
			cascade: false//是否美化属性
		}))
		.pipe(gulp.dest('dist/css'));
})

//scss仅转化为css(开发模式使用)
gulp.task("devcss",function(){
	gulp.src('src/scss/**/*.scss')
		.pipe(gulp_plumber())
		.pipe(gulp_sass())
		.pipe(gulp_autoprefixer({
			browsers: ['last 2 versions', 'Android >= 4.0','iOS 7','last 3 Safari versions'],
			cascade: false//是否美化属性
		}))
		.pipe(gulp.dest('src/css'));
})

//图片的压缩任务
gulp.task("minimg",function(){
	gulp.src('src/img/**/*.*')//source
		.pipe(gulp_plumber())
		.pipe(gulp_tinypng("YX0UJ0M7aVO9qdD0_bRIok_yB8kNXZhL"))
		.pipe(gulp.dest('dist/img'));
})

//压缩js任务
gulp.task("minjs",function(){
	gulp.src('src/js/**/*.js')//source
		.pipe(gulp_babel({
			presets:['es2015']
		}))
		.pipe(gulp_uglify())
		.pipe(gulp.dest('dist/js'));
})

//定义浏览器自动刷新任务(开发用)
gulp.task('browser_sync', function() {
    browser_sync.init({
    	port:Math.floor(Math.random()*9999)+1000,//随机端口
        server: {
            baseDir: "./"
        }
    });
    gulp.watch("src/scss/**/*.scss",["devcss"]).on("change",browser_sync.reload)
    gulp.watch("src/*.html").on("change",browser_sync.reload);
});

//定义copy任务(把不需要压缩的直接复制到dist)
gulp.task("copy",function(){
	gulp.src("src/**/*.html").pipe(gulp_copy("dist",{prefix:"1"}))//复制所有html
	gulp.src("src/font/**/*").pipe(gulp_copy("dist/font",{prefix:"2"}));//复制字体库
})

//定义一键开发模式
gulp.task("dev",["browser_sync"]);

//定义一键生成模式
gulp.task("pro",["mincss","copy","minjs","minimg"]);
